/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.jjsoft.sistemafacturacion.gco.util;


import com.jjsoft.sistemafacturacion.gco.mdl.Detallefactura;
import com.jjsoft.sistemafacturacion.gco.mdl.Factura;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import java.util.List;

/**
 *
 * @author Johnny
 */
public class printObject
        implements Printable {

    Factura fact;
    List<Detallefactura> listaDetalle;
    
    public printObject(Factura fact) {
        this.fact = fact;
    }

    public int print(Graphics g, PageFormat f, int pageIndex) {
        if (pageIndex == 0) {
            Font julian_iFont = new Font("Arial", 1, 8);
            g.setFont(julian_iFont);
            String nombreComp=fact.getCedulaCliente().getNombres()+" "+fact.getCedulaCliente().getApellidos();
            String apellido1=fact.getCedulaCliente().getApellidos();
            if(nombreComp.length()>28)
            nombreComp=nombreComp.substring(0,28);
            
     
            g.drawString(agregaEspacios(nombreComp), 138, 92);
            g.drawString(agregaEspacios(this.fact.getCedulaCliente().getTelefono()), 390, 92);
            g.drawString(agregaEspacios(this.fact.getFecha().toLocaleString().split(" ")[0]), 385, 110);
            g.drawString(agregaEspacios(this.fact.getCedulaCliente().getCedula()), 138, 110);
            g.drawString(agregaEspacios(this.fact.getCedulaCliente().getDireccion()), 138, 128);
            g.drawString(agregaEspacios(this.fact.getGuiaRemision()), 385, 128);
            int y = 178;/*
            for (int i = 0; i < this.fact.getDetallefacturaList().size(); i++) {
                g.drawString(agregaEspacios(String.valueOf(((Detallefactura) this.fact.getDetallefacturaList().get(i)).getCantidad().intValue())), 90, y);
                if ((((Articulo) this.listaArticulos.get(i)).getDescripcion() + " " + ((Articulo) this.listaArticulos.get(i)).getMarca() + " " + ((Articulo) this.listaArticulos.get(i)).getModelo()).length() > 25) {
                    String descrip = ((Articulo) this.listaArticulos.get(i)).getDescripcion();
                    if (descrip.length() > 28) {
                        descrip = descrip.substring(0, 27);
                    }
                    g.drawString(agregaEspacios(descrip), 130, y);
                    y += 22;
                    String descrip1 = ((Articulo) this.listaArticulos.get(i)).getMarca() + " " + ((Articulo) this.listaArticulos.get(i)).getModelo();
                    g.drawString(agregaEspacios(descrip1), 130, y);
                } else {
                    String descrip = ((Articulo) this.listaArticulos.get(i)).getDescripcion() + " " + ((Articulo) this.listaArticulos.get(i)).getMarca() + " " + ((Articulo) this.listaArticulos.get(i)).getModelo();
                    g.drawString(agregaEspacios(descrip), 130, y);
                }
                if ((((Detallefactura) this.fact.getDetallefacturaList().get(i)).getSerie() != null) && (((Detallefactura) this.fact.getDetallefacturaList().get(i)).getSerie().length() > 0)) {
                    g.drawString(agregaEspacios("SN:" + ((Detallefactura) this.fact.getDetallefacturaList().get(i)).getSerie()), 130, y + 22);
                    y += 22;
                }
                g.drawString(agregaEspacios(((Detallefactura) this.fact.getDetallefacturaList().get(i)).getPrecioVenta().toString()), 345, y);
                g.drawString(agregaEspacios(String.valueOf(((Detallefactura) this.fact.getDetallefacturaList().get(i)).getCantidad().doubleValue() * ((Detallefactura) this.fact.getDetallefacturaList().get(i)).getPrecioVenta().doubleValue())), 403, y);
                y += 22;
            }*/
            g.drawString(agregaEspacios(this.fact.getSubtotal().toString()), 403, 438);
            //g.drawString(agregaEspacios(this.fact.getIva0().toString()), 403, 458);
            g.drawString(agregaEspacios(String.valueOf(redondear(this.fact.getSubtotal().doubleValue() * this.fact.getDescuento().doubleValue() / 100.0D))), 403, 478);
            //g.drawString(agregaEspacios(this.fact.getIva12().toString()), 403, 498);
            g.drawString(agregaEspacios(this.fact.getTotal().toString()), 403, 518);
            return 0;
        }
        return 1;
    }

    private double redondear(double num) {
        num *= 100.0D;
        long numr = Math.round(num);
        return numr / 100.0D;
    }

    private String agregaEspacios(String cadena) {
        /*String cad = "";
        for (int i = 0; i < cadena.length(); i++) {
            cad = cad + String.valueOf(cadena.charAt(i)) + " ";
        }
        * */
        return cadena;
    }
}